package hcn.protocol.ods.newdiagnosis;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.List;

/**
 * Created by ChenJij on 2020/12/12.
 */
@XmlRootElement(name = "MsgBody")
public class UpdateApplyFormRequestBean {
    private InnerPatient patient;
    private InnerVisit visit;
    private InnerExamStatusInfo examStatusInfo;

    @XmlElement(name = "Patient")
    public InnerPatient getPatient() {
        return patient;
    }

    public void setPatient(InnerPatient patient) {
        this.patient = patient;
    }

    @XmlElement(name = "Visit")
    public InnerVisit getVisit() {
        return visit;
    }

    public void setVisit(InnerVisit visit) {
        this.visit = visit;
    }

    @XmlElement(name = "ExamStatusInfo")
    public InnerExamStatusInfo getExamStatusInfo() {
        return examStatusInfo;
    }

    public void setExamStatusInfo(InnerExamStatusInfo examStatusInfo) {
        this.examStatusInfo = examStatusInfo;
    }

    public static class InnerPatient {
        private String sourcePatientId;
        private String domainId;

        @XmlElement(name = "SourcePatientId")
        public String getSourcePatientId() {
            return sourcePatientId;
        }

        public void setSourcePatientId(String sourcePatientId) {
            this.sourcePatientId = sourcePatientId;
        }

        @XmlElement(name = "DomainId")
        public String getDomainId() {
            return domainId;
        }

        public void setDomainId(String domainId) {
            this.domainId = domainId;
        }
    }

    public static class InnerVisit {
        private String visitId;
        private String visitTimes;

        @XmlElement(name = "VisitId")
        public String getVisitId() {
            return visitId;
        }

        public void setVisitId(String visitId) {
            this.visitId = visitId;
        }

        @XmlElement(name = "VisitTimes")
        public String getVisitTimes() {
            return visitTimes;
        }

        public void setVisitTimes(String visitTimes) {
            this.visitTimes = visitTimes;
        }
    }

    public static class InnerExamStatusInfo {
        private String requestId;
        private String visitOrganization;
        private List<InnerItem> itemLists;

        @XmlElement(name = "RequestId")
        public String getRequestId() {
            return requestId;
        }

        public void setRequestId(String requestId) {
            this.requestId = requestId;
        }

        @XmlElement(name = "VisitOrganization")
        public String getVisitOrganization() {
            return visitOrganization;
        }

        public void setVisitOrganization(String visitOrganization) {
            this.visitOrganization = visitOrganization;
        }

        @XmlElementWrapper(name = "ItemLists")
        @XmlElement(name = "ItemList")
        public List<InnerItem> getItemLists() {
            return itemLists;
        }

        public void setItemLists(List<InnerItem> itemLists) {
            this.itemLists = itemLists;
        }




        public static class InnerItem {
            private String itemCode;
            private String itemCost;
            private String invoiceNo;
            private String examStatusCode;

            @XmlElement(name = "ItemCode")
            public String getItemCode() {
                return itemCode;
            }

            public void setItemCode(String itemCode) {
                this.itemCode = itemCode;
            }

            @XmlElement(name = "ItemCost")
            public String getItemCost() {
                return itemCost;
            }

            public void setItemCost(String itemCost) {
                this.itemCost = itemCost;
            }

            @XmlElement(name = "InvoiceNo")
            public String getInvoiceNo() {
                return invoiceNo;
            }

            public void setInvoiceNo(String invoiceNo) {
                this.invoiceNo = invoiceNo;
            }

            @XmlElement(name = "ExamStatusCode")
            public String getExamStatusCode() {
                return examStatusCode;
            }

            public void setExamStatusCode(String examStatusCode) {
                this.examStatusCode = examStatusCode;
            }
        }
    }
}